package modelo.dao;

import controle_pojo.Hospede;
import java.beans.Statement;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.swing.JOptionPane;
import modelo.conexao.conexao;

public class cadHospedeDAO {

    public Statement statement;
    public ResultSet rs;

    public void salvarHospede(Hospede h) {
        try {
            PreparedStatement comandoSQL;
            conexao bd = new conexao();
            bd.conectar();

            comandoSQL = bd.getConexao().prepareStatement(
                    "INSERT INTO public.hospede (nome, sexo, cpf, rg, dtnascimento, email, naturalidade, nacionalidade, estadocivil, endresid, "
                    + "bairro, cep, cidade, uf, telcel, telresid, profissao, possuicarro, plccar, mmcar, apt, dtentrada, dtsaida, cor, empresa)"
                    + "values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");

            comandoSQL.setString(1, h.getNome());
            comandoSQL.setString(2, h.getSexo());
            comandoSQL.setString(3, h.getCpf());
            comandoSQL.setString(4, h.getRg());
            comandoSQL.setString(5, h.getDtnascimento());
            comandoSQL.setString(6, h.getEmail());
            comandoSQL.setString(7, h.getNaturalidade());
            comandoSQL.setString(8, h.getNacionalidade());
            comandoSQL.setString(9, h.getEstadocivil());
            comandoSQL.setString(10, h.getEndresid());
            comandoSQL.setString(11, h.getBairro());
            comandoSQL.setString(12, h.getCep());
            comandoSQL.setString(13, h.getCidade());
            comandoSQL.setString(14, h.getUf());
            comandoSQL.setString(15, h.getTelcel());
            comandoSQL.setString(16, h.getTelresid());
            comandoSQL.setString(17, h.getProfissao());
            comandoSQL.setString(18, h.getPossuicarro());
            comandoSQL.setString(19, h.getPlccar());
            comandoSQL.setString(20, h.getMmcar());
            comandoSQL.setString(21, h.getApt());
            comandoSQL.setString(22, h.getDtentrada());
            comandoSQL.setString(23, h.getDtsaida());
            comandoSQL.setString(24, h.getCor());
            comandoSQL.setString(25, h.getEmpresa());

            comandoSQL.executeUpdate();

            JOptionPane.showMessageDialog(null, "Cadastrado com sucesso!!");

            bd.desconectar();

        } catch (SQLException e) {
            JOptionPane.showMessageDialog(null, e);


        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, e);
        }
    }

    public void alterarHospede(Hospede h) {
        try {
            PreparedStatement comandoSQL;
            conexao bd = new conexao();
            bd.conectar();

            comandoSQL = bd.getConexao().prepareStatement(
                    "UPDATE public.hospede SET nome = ?, sexo = ?, cpf = ?, rg = ?, dtnascimento = ?, email = ?, naturalidade = ?, nacionalidade = ?, "
                    + "estadocivil = ?, endresid = ?, bairro = ?, cep = ?, cidade = ?, uf = ?, telcel = ?, telresid = ?, profissao = ?, possuicarro = ?, "
                    + "plccar = ?, mmcar = ?, apt = ?, dtentrada = ?, dtsaida = ?, cor = ?, empresa = ? "
                    + "WHERE cpf = ?");

            comandoSQL.setString(1, h.getNome());
            comandoSQL.setString(2, h.getSexo());
            comandoSQL.setString(3, h.getCpf());
            comandoSQL.setString(4, h.getRg());
            comandoSQL.setString(5, h.getDtnascimento());
            comandoSQL.setString(6, h.getEmail());
            comandoSQL.setString(7, h.getNaturalidade());
            comandoSQL.setString(8, h.getNacionalidade());
            comandoSQL.setString(9, h.getEstadocivil());
            comandoSQL.setString(10, h.getEndresid());
            comandoSQL.setString(11, h.getBairro());
            comandoSQL.setString(12, h.getCep());
            comandoSQL.setString(13, h.getCidade());
            comandoSQL.setString(14, h.getUf());
            comandoSQL.setString(15, h.getTelcel());
            comandoSQL.setString(16, h.getTelresid());
            comandoSQL.setString(17, h.getProfissao());
            comandoSQL.setString(18, h.getPossuicarro());
            comandoSQL.setString(19, h.getPlccar());
            comandoSQL.setString(20, h.getMmcar());
            comandoSQL.setString(21, h.getApt());
            comandoSQL.setString(22, h.getDtentrada());
            comandoSQL.setString(23, h.getDtsaida());
            comandoSQL.setString(24, h.getCor());
            comandoSQL.setString(25, h.getEmpresa());

            comandoSQL.setString(26, h.getCpf());

            comandoSQL.executeUpdate();

            JOptionPane.showMessageDialog(null, "Alterado com Sucesso!!");

            bd.desconectar();

        } catch (SQLException e) {
            JOptionPane.showMessageDialog(null, e);


        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, e);
        }
    }

    public Hospede consultarHospede(int id) {
        Hospede h = new Hospede();

        try {
            PreparedStatement comandoSQL;
            conexao bd = new conexao();
            bd.conectar();

            comandoSQL = bd.getConexao().prepareStatement(
                    "SELECT * "
                    + "FROM hospede "
                    + "WHERE id = " + id);

            rs = comandoSQL.executeQuery();

            if (rs.next()) {

                h.setId(rs.getInt("id"));
                h.setNome(rs.getString("nome"));
                h.setSexo(rs.getString("sexo"));
                h.setCpf(rs.getString("cpf"));
                h.setRg(rs.getString("rg"));
                h.setDtnascimento(rs.getString("dtnascimento"));
                h.setEmail(rs.getString("email"));
                h.setNaturalidade(rs.getString("naturalidade"));
                h.setNacionalidade(rs.getString("nacionalidade"));
                h.setEstadocivil(rs.getString("estadocivil"));
                h.setEndresid(rs.getString("endresid"));
                h.setBairro(rs.getString("bairro"));
                h.setCep(rs.getString("cep"));
                h.setCidade(rs.getString("cidade"));
                h.setUf(rs.getString("uf"));
                h.setTelcel(rs.getString("telcel"));
                h.setTelresid(rs.getString("telresid"));
                h.setProfissao(rs.getString("profissao"));
                h.setPossuicarro(rs.getString("possuicarro"));
                h.setPlccar(rs.getString("plccar"));
                h.setMmcar(rs.getString("mmcar"));
                h.setApt(rs.getString("apt"));
                h.setDtentrada(rs.getString("dtentrada"));
                h.setDtsaida(rs.getString("dtsaida"));
                h.setCor(rs.getString("cor"));
                h.setEmpresa(rs.getString("empresa"));

            } else {

                JOptionPane.showMessageDialog(null, "Hospede não encontrado");

            }

        } catch (Exception e) {

            JOptionPane.showMessageDialog(null, e);
            e.printStackTrace();
        }

        return h;
    }
}
